// 定义懒加载插件
// 判断图片是否进入视口
import { useIntersectionObserver } from '@vueuse/core'

export const lazyPlugin = {
  install(app) {
    // 懒加载指令逻辑
    app.directive('img-lazy', {
      mounted(el, binding) {
        // el：指令绑定的那个元素 img
        // binding：binding.value 指令等于号后面绑定的表达式的值 即图片url
        // console.log(el, binding.value)
        const { stop } = useIntersectionObserver(
          el,
          ([{ isIntersecting }]) => {
            // console.log(isIntersecting)  // true / false
            if (isIntersecting) {
              // 进入视口区域
              el.src = binding.value
              stop()  // 避免重复监听
            }
          },
        )
      }
    })
  }
}